/*
* 能发送 ajax 请求的函数模块
* 包装 axios
* 函数的返回值:  promise 对象
* axios.get() / post() 返回的就是 promise 对象
* 返回自己创建的 promise 对象 :
* 统一处理请求异常异步返回结果数据 , 而不是包含结果数据的 response
*
* */
import axios from 'axios'
import {message} from 'antd'

export default function ajax(url, data = {}, method = 'GET') {
  return new Promise((resolve, reject) => {
    let promise
    // 执行异步 ajax 请求
    if (method === 'GET') {
      promise = axios.get(url, {params: data}) // params 配置指定的是 query 参数
    } else {
      promise = axios.post(url, data)
    }
    promise.then(response => {
      // 如果成功了 , 调用 resolve(response.data)
      resolve(response.data)
    }).catch(error => { // 对所有 ajax 请求出错做统一处理 , 外层就不用再处理错误了
      // 如果失败了 , 提示请求后台出错
      message.error(' 请求错误: ' + error.message)
    })
  })
}
